/*
 * Copyright (c) 2018 maoyan.com
 * All rights reserved.
 *
 */
package com.darren.euc.service;

import com.darren.euc.entity.Msg;
import com.darren.euc.entity.PageBean;
import com.darren.euc.entity.User;
import com.darren.euc.util.Kv;
import net.sf.json.JSONObject;

import java.util.Map;

/**
 * 在这里编写类的功能描述
 *
 * @author fangwenhao
 * @created 2018/3/11
 */
public interface MsgService {

    PageBean queryForPageMsgHQL(JSONObject data, Integer pageSize, int currentPage);

    Msg save(Msg msg);

    Msg findById(Long id);

    Msg delete(Long id);

    /**
     * 消息列表（app端）
     */
    PageBean msgList(Map map, int pn, int ps);

    /**
     * 消息列表（app端）
     */
    PageBean msgListV2(Map map, int pn, int ps);

    /**
     * 消息列表 WEB端
     */
    PageBean msgListForWeb(User user, int pn, int ps);

    /**
     * 消息详情（app端）
     * @param msg_id
     * @return
     */
    Map msgInfo(int msg_id);

    /**
     * 消息未读统计（app端）
     * @param kv
     * @return
     */
    Map msgCount(Kv kv);

    /**
     * 消息未读统计（app端）
     * @param kv
     * @return
     */
    Map msgCountV2(Kv kv);

    /**
     * 消息未读统计（web端）
     * @param kv
     * @return
     */
    Map msgCountForWeb(Kv kv);

    /**
     * 一键全看
     * @param kv
     * @return
     */
    void readedAll(Kv kv);

    /**
     * 一键全看 APP
     * @param kv
     * @return
     */
    void readedAllV2(Kv kv);

    /**
     * 一键全看 WEB
     * @param kv
     * @return
     */
    void readedAllForWeb(Kv kv);

    /**
     * 记录消息阅读记录（app端）
     * @param member_id
     * @param message_id
     */
    void msgLogSave(int member_id, int message_id);

    /**
     * 记录消息阅读记录（WEB端）
     * @param user_id
     * @param message_id
     */
    void msgLogSaveForWeb(int user_id, int message_id);
}
